﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Data.SqlClient;
using System.Configuration;
using System.IO;
using System.Diagnostics;
using System.Data;

namespace ReclutamientoCosea
{
    /// <summary>
    /// Interaction logic for wReporteFinal.xaml
    /// </summary>
    public partial class wReporteFinal : Window
    {

        private string _idCandidato = "";
        private static AppSettingsReader settings = new AppSettingsReader();

        public string IdCandidato
        {
            get { return _idCandidato; }
            set { _idCandidato = value; }
        }
        public wReporteFinal()
        {
            InitializeComponent();
            this.Loaded += new RoutedEventHandler(wReporteFinal_Loaded);
        }

        void wReporteFinal_Loaded(object sender, RoutedEventArgs e)
        {
            ObtieneDatos();
        }

        private void ObtieneDatos()
        {
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));
            try
            {
                string SQL = "exec SPObtenDatosReporte '{0}'";
                bd.bdConecta();
                SQL = string.Format(SQL, _idCandidato);

                DataSet ds = bd.dataSetConsulta(SQL, "reporte");

                if (ds.Tables["reporte"].Rows.Count > 0)
                {
                    DataRow dr = ds.Tables["reporte"].Rows[0];
                    lblNombre.Content = dr["Nombre_Completo"].ToString();
                    txtPuesto.Text = dr["Puesto"].ToString();
                    txtSituacion.Text = string.Empty;

                    string strDescripcion = "Edad: " + dr["Edad"].ToString().Trim() + "\r\n"
                        + "Estado Civil:" + dr["Estado_Civil"].ToString().Trim() + "\r\n"
                        + "Escolaridad:" + dr["Escolaridad"].ToString().Trim() + "\r\n"
                         + "Domicilio:" + dr["Domicilio"].ToString().Trim() + "\r\n";

                    FlowDocument mcFlowDoc = new FlowDocument();
                    Paragraph para = new Paragraph();
                    para.Inlines.Add(new Run(strDescripcion));
                    mcFlowDoc.Blocks.Add(para);
                    txtDescripcion.Document = mcFlowDoc;



                    string strHabilidadesDesarrollo = dr["Habilidades"].ToString().Trim() + "\r\n"
                        + dr["Competencias"].ToString().Trim() + "\r\n";

                    mcFlowDoc = new FlowDocument();
                    para = new Paragraph();
                    para.Inlines.Add(new Run(strHabilidadesDesarrollo));
                    mcFlowDoc.Blocks.Add(para);
                    txtHabilidadesDesarrollo.Document = mcFlowDoc;

                    SQL = string.Format("select puesto,actividades,logros,relacionjefe,motivosalida from ExperienciaLaboralEntreCosea where idcandidato = '{0}' order by renglon ", _idCandidato);
                    DataSet dsExp = bd.dataSetConsulta(SQL, "exp");
                    if (dsExp.Tables["exp"].Rows.Count > 0)
                    {
                        string strContenido = "";
                        foreach (DataRow dr2 in dsExp.Tables["exp"].Rows)
                        {
                            strContenido += "Puesto: " + dr2["puesto"].ToString().Trim() + ", "
                                + "Actividades: " + dr2["actividades"].ToString().Trim() + ", "
                                + "Logros: " + dr2["logros"].ToString().Trim() + ", "
                                + "Relacion con el jefe: " + dr2["relacionjefe"].ToString().Trim() + ", "
                                + "Motivo Salida: " + dr2["motivosalida"].ToString().Trim() + "\r\n";
                        }

                        mcFlowDoc = new FlowDocument();
                        para = new Paragraph();
                        para.Inlines.Add(new Run(strContenido));
                        mcFlowDoc.Blocks.Add(para);
                        txtManejoImplementacion.Document = mcFlowDoc;
                    }


                }
                txtOperatividad1.Text = string.Empty;
                txtOperatividad2.Text = string.Empty;
                txtOperatividad3.Text = string.Empty;
                txtOperatividad4.Text = string.Empty;
                txtOperatividad5.Text = string.Empty;
                txtEquipo.Text = "0.0";
                txtOrganizacion.Text = "0.0";
                txtExperiencia.Text = "0.0";
                txtLiderazgo.Text = "0.0";

            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
            finally
            {
                bd.bdCierra();
            }

        }

        private void btnHacer_Click(object sender, RoutedEventArgs e)
        {
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));
            try
            {

                string SQL = "insert into ReporteFinal values ('{0}','{1}',GETDATE(),'{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}',{12},{13},{14},'{15}','{16}','{17}',{18})";
                string strFinal = "";
                bd.bdConecta();
                string guid = System.Guid.NewGuid().ToString();
                string strConsulta = "select idusuario,username,p.nombre1 from Usuario u inner join Persona p on u.idpersona = p.idpersona where idusuario = '{0}'";
                strConsulta = string.Format(strConsulta, LogInLogOut.Usuario.idusuario);
                DataSet dsRes = bd.dataSetConsulta(strConsulta, "res");
                string strQuien = "";
                if (dsRes.Tables["res"].Rows.Count > 0)                
                    strQuien = dsRes.Tables["res"].Rows[0]["nombre1"].ToString();
                
                strFinal = string.Format(SQL, guid, _idCandidato, lblNombre.Content, txtSituacion.Text, Utilerias.ConvertRichTextBoxContentsToString(txtDescripcion),
                    Utilerias.ConvertRichTextBoxContentsToString(txtHabilidadesDesarrollo), Utilerias.ConvertRichTextBoxContentsToString(txtManejoImplementacion), txtOperatividad1.Text, txtOperatividad2.Text,
                    txtOperatividad3.Text, txtOperatividad4.Text, txtOperatividad5.Text, txtEquipo.Text,
                    txtExperiencia.Text, txtLiderazgo.Text,Utilerias.ConvertRichTextBoxContentsToString (txtComentarios) , strQuien, txtPuesto.Text, txtOrganizacion.Text);


                //int d = bd.bdEjecuta("Delete from ReporteFinal");
                int r = bd.bdEjecuta(strFinal);

                //string strSQL = "select * from ReporteFinal where idReportefinal = '{0}'";
                //strSQL = string.Format(strSQL, guid);
                //DataSet ds1 = bd.dataSetConsulta(strSQL, "r");
                ////string appPath = Path.GetDirectoryName(Application.ExecutablePath);
                //string appPath = "c:\\tmpReportes";
                //string archivo = System.IO.Path.Combine(appPath, "tmpDatos.xml");
                //ds1.WriteXml(archivo);              
                //MessageBox.Show("Reporte generado, da click en Ver Reporte", "Sistema Reclutamiento", MessageBoxButtons.OK, MessageBoxIcon.Information);
                string strURL = "http://www.coseanet.com/ReportServer?/ReporteFinal&rs:Command=Render&IdReportefinal={0}";

                if(radioButton1.IsChecked == true )
                    strURL = "http://www.coseanet.com/ReportServer?/ReporteFinal&rs:Command=Render&IdReportefinal={0}";

                if (radioButton2.IsChecked == true)
                    strURL = "http://www.coseanet.com/ReportServer?/ReporteFinal2&rs:Command=Render&IdReportefinal={0}";

                if (radioButton3.IsChecked == true)
                    strURL = "http://www.coseanet.com/ReportServer?/ReporteFinal3&rs:Command=Render&IdReportefinal={0}";

                strURL = string.Format(strURL, guid);
                Process.Start("iexplore.exe", strURL);               

            }
            catch (Exception ex)
            {
                wExcepcionesSistema wError = new wExcepcionesSistema();
                wError.txtExcepcion.Text = ex.Message;
                wError.ShowDialog();
            }
            finally
            {
                bd.bdCierra();
            }
        }
    }
}
